home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / os2 / e33el2.zip / emacs / 19.33 / lisp / ws-mode.el < prev    next >
Lisp/Scheme  |  1996-01-20  |  25KB  |  754 lines

  1. ;;; ws-mode.el --- WordStar emulation mode for GNU Emacs
  2.  
  3. ;; Copyright (C) 1991 Free Software Foundation, Inc.
  4.  
  5. ;; Author: Juergen Nickelsen <nickel@cs.tu-berlin.de>
  6. ;; Version: 0.7
  7. ;; Keywords: emulations
  8.  
  9. ;; This file is part of GNU Emacs.
  10.  
  11. ;; GNU Emacs is free software; you can redistribute it and/or modify
  12. ;; it under the terms of the GNU General Public License as published by
  13. ;; the Free Software Foundation; either version 2, or (at your option)
  14. ;; any later version.
  15.  
  16. ;; GNU Emacs is distributed in the hope that it will be useful,
  17. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19. ;; GNU General Public License for more details.
  20.  
  21. ;; You should have received a copy of the GNU General Public License
  22. ;; along with GNU Emacs; see the file COPYING.  If not, write to the
  23. ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  24. ;; Boston, MA 02111-1307, USA.
  25.  
  26. ;;; Commentary:
  27.  
  28. ;; This emulates WordStar, with a major mode.
  29.  
  30. ;;; Code:
  31.  
  32. (defvar wordstar-mode-map nil "")
  33. (defvar wordstar-C-j-map nil "")
  34. (defvar wordstar-C-k-map nil "")
  35. (defvar wordstar-C-o-map nil "")
  36. (defvar wordstar-C-q-map nil "")
  37.  
  38. (if wordstar-mode-map
  39.     ()
  40.   (setq wordstar-mode-map (make-keymap))
  41.   ;;  (setq wordstar-C-j-map (make-keymap)) ; later, perhaps
  42.   (setq wordstar-C-k-map (make-keymap))
  43.   (setq wordstar-C-o-map (make-keymap))
  44.   (setq wordstar-C-q-map (make-keymap))
  45.   
  46.   (define-key wordstar-mode-map "\C-a" 'backward-word)
  47.   (define-key wordstar-mode-map "\C-b" 'fill-paragraph)
  48.   (define-key wordstar-mode-map "\C-c" 'scroll-up)
  49.   (define-key wordstar-mode-map "\C-d" 'forward-char)
  50.   (define-key wordstar-mode-map "\C-e" 'previous-line)
  51.   (define-key wordstar-mode-map "\C-f" 'forward-word)
  52.   (define-key wordstar-mode-map "\C-g" 'delete-char)
  53.   (define-key wordstar-mode-map "\C-h" 'backward-char)
  54.   (define-key wordstar-mode-map "\C-i" 'indent-for-tab-command)
  55.   (define-key wordstar-mode-map "\C-j" 'help-for-help)
  56.   (define-key wordstar-mode-map "\C-k" wordstar-C-k-map)
  57.   (define-key wordstar-mode-map "\C-l" 'ws-repeat-search)
  58.   (define-key wordstar-mode-map "\C-n" 'open-line)
  59.   (define-key wordstar-mode-map "\C-o" wordstar-C-o-map)
  60.   (define-key wordstar-mode-map "\C-p" 'quoted-insert)
  61.   (define-key wordstar-mode-map "\C-q" wordstar-C-q-map)
  62.   (define-key wordstar-mode-map "\C-r" 'scroll-down)
  63.   (define-key wordstar-mode-map "\C-s" 'backward-char)
  64.   (define-key wordstar-mode-map "\C-t" 'kill-word)
  65.   (define-key wordstar-mode-map "\C-u" 'keyboard-quit)
  66.   (define-key wordstar-mode-map "\C-v" 'overwrite-mode)
  67.   (define-key wordstar-mode-map "\C-w" 'scroll-down-line)
  68.   (define-key wordstar-mode-map "\C-x" 'next-line)
  69.   (define-key wordstar-mode-map "\C-y" 'kill-complete-line)
  70.   (define-key wordstar-mode-map "\C-z" 'scroll-up-line)
  71.   
  72.   ;; wordstar-C-k-map
  73.   
  74.   (define-key wordstar-C-k-map " " ())
  75.   (define-key wordstar-C-k-map "0" 'ws-set-marker-0)
  76.   (define-key wordstar-C-k-map "1" 'ws-set-marker-1)
  77.   (define-key wordstar-C-k-map "2" 'ws-set-marker-2)
  78.   (define-key wordstar-C-k-map "3" 'ws-set-marker-3)
  79.   (define-key wordstar-C-k-map "4" 'ws-set-marker-4)
  80.   (define-key wordstar-C-k-map "5" 'ws-set-marker-5)
  81.   (define-key wordstar-C-k-map "6" 'ws-set-marker-6)
  82.   (define-key wordstar-C-k-map "7" 'ws-set-marker-7)
  83.   (define-key wordstar-C-k-map "8" 'ws-set-marker-8)
  84.   (define-key wordstar-C-k-map "9" 'ws-set-marker-9)
  85.   (define-key wordstar-C-k-map "b" 'ws-begin-block)
  86.   (define-key wordstar-C-k-map "\C-b" 'ws-begin-block)
  87.   (define-key wordstar-C-k-map "c" 'ws-copy-block)
  88.   (define-key wordstar-C-k-map "\C-c" 'ws-copy-block)
  89.   (define-key wordstar-C-k-map "d" 'save-buffers-kill-emacs)
  90.   (define-key wordstar-C-k-map "\C-d" 'save-buffers-kill-emacs)
  91.   (define-key wordstar-C-k-map "f" 'find-file)
  92.   (define-key wordstar-C-k-map "\C-f" 'find-file)
  93.   (define-key wordstar-C-k-map "h" 'ws-show-markers)
  94.   (define-key wordstar-C-k-map "\C-h" 'ws-show-markers)
  95.   (define-key wordstar-C-k-map "i" 'ws-indent-block)
  96.   (define-key wordstar-C-k-map "\C-i" 'ws-indent-block)
  97.   (define-key wordstar-C-k-map "k" 'ws-end-block)
  98.   (define-key wordstar-C-k-map "\C-k" 'ws-end-block)
  99.   (define-key wordstar-C-k-map "p" 'ws-print-block)
  100.   (define-key wordstar-C-k-map "\C-p" 'ws-print-block)
  101.   (define-key wordstar-C-k-map "q" 'kill-emacs)
  102.   (define-key wordstar-C-k-map "\C-q" 'kill-emacs)
  103.   (define-key wordstar-C-k-map "r" 'insert-file)
  104.   (define-key wordstar-C-k-map "\C-r" 'insert-file)
  105.   (define-key wordstar-C-k-map "s" 'save-some-buffers)
  106.   (define-key wordstar-C-k-map "\C-s" 'save-some-buffers)
  107.   (define-key wordstar-C-k-map "t" 'ws-mark-word)
  108.   (define-key wordstar-C-k-map "\C-t" 'ws-mark-word)
  109.   (define-key wordstar-C-k-map "u" 'ws-exdent-block)
  110.   (define-key wordstar-C-k-map "\C-u" 'keyboard-quit)
  111.   (define-key wordstar-C-k-map "v" 'ws-move-block)
  112.   (define-key wordstar-C-k-map "\C-v" 'ws-move-block)
  113.   (define-key wordstar-C-k-map "w" 'ws-write-block)
  114.   (define-key wordstar-C-k-map "\C-w" 'ws-write-block)
  115.   (define-key wordstar-C-k-map "x" 'save-buffers-kill-emacs)
  116.   (define-key wordstar-C-k-map "\C-x" 'save-buffers-kill-emacs)
  117.   (define-key wordstar-C-k-map "y" 'ws-delete-block)
  118.   (define-key wordstar-C-k-map "\C-y" 'ws-delete-block)
  119.   
  120.   ;; wordstar-C-j-map not yet implemented
  121.   
  122.   ;; wordstar-C-o-map
  123.   
  124.   (define-key wordstar-C-o-map " " ())
  125.   (define-key wordstar-C-o-map "c" 'wordstar-center-line)
  126.   (define-key wordstar-C-o-map "\C-c" 'wordstar-center-line)
  127.   (define-key wordstar-C-o-map "b" 'switch-to-buffer)
  128.   (define-key wordstar-C-o-map "\C-b" 'switch-to-buffer)
  129.   (define-key wordstar-C-o-map "j" 'justify-current-line)
  130.   (define-key wordstar-C-o-map "\C-j" 'justify-current-line)
  131.   (define-key wordstar-C-o-map "k" 'kill-buffer)
  132.   (define-key wordstar-C-o-map "\C-k" 'kill-buffer)
  133.   (define-key wordstar-C-o-map "l" 'list-buffers)
  134.   (define-key wordstar-C-o-map "\C-l" 'list-buffers)
  135.   (define-key wordstar-C-o-map "m" 'auto-fill-mode)
  136.   (define-key wordstar-C-o-map "\C-m" 'auto-fill-mode)
  137.   (define-key wordstar-C-o-map "r" 'set-fill-column)
  138.   (define-key wordstar-C-o-map "\C-r" 'set-fill-column)
  139.   (define-key wordstar-C-o-map "\C-u" 'keyboard-quit)
  140.   (define-key wordstar-C-o-map "wd" 'delete-other-windows)
  141.   (define-key wordstar-C-o-map "wh" 'split-window-horizontally)
  142.   (define-key wordstar-C-o-map "wo" 'other-window)
  143.   (define-key wordstar-C-o-map "wv" 'split-window-vertically)
  144.   
  145.   ;; wordstar-C-q-map
  146.   (define-key wordstar-C-q-map " " ())
  147.   (define-key wordstar-C-q-map "0" 'ws-find-marker-0)
  148.   (define-key wordstar-C-q-map "1" 'ws-find-marker-1)
  149.   (define-key wordstar-C-q-map "2" 'ws-find-marker-2)
  150.   (define-key wordstar-C-q-map "3" 'ws-find-marker-3)
  151.   (define-key wordstar-C-q-map "4" 'ws-find-marker-4)
  152.   (define-key wordstar-C-q-map "5" 'ws-find-marker-5)
  153.   (define-key wordstar-C-q-map "6" 'ws-find-marker-6)
  154.   (define-key wordstar-C-q-map "7" 'ws-find-marker-7)
  155.   (define-key wordstar-C-q-map "8" 'ws-find-marker-8)
  156.   (define-key wordstar-C-q-map "9" 'ws-find-marker-9)
  157.   (define-key wordstar-C-q-map "a" 'ws-query-replace)
  158.   (define-key wordstar-C-q-map "\C-a" 'ws-query-replace)
  159.   (define-key wordstar-C-q-map "b" 'ws-goto-block-begin)
  160.   (define-key wordstar-C-q-map "\C-b" 'ws-goto-block-begin)
  161.   (define-key wordstar-C-q-map "c" 'end-of-buffer)
  162.   (define-key wordstar-C-q-map "\C-c" 'end-of-buffer)
  163.   (define-key wordstar-C-q-map "d" 'end-of-line)
  164.   (define-key wordstar-C-q-map "\C-d" 'end-of-line)
  165.   (define-key wordstar-C-q-map "f" 'ws-search)
  166.   (define-key wordstar-C-q-map "\C-f" 'ws-search)
  167.   (define-key wordstar-C-q-map "k" 'ws-goto-block-end)
  168.   (define-key wordstar-C-q-map "\C-k" 'ws-goto-block-end)
  169.   (define-key wordstar-C-q-map "l" 'ws-undo)
  170.   (define-key wordstar-C-q-map "\C-l" 'ws-undo)
  171.   (define-key wordstar-C-q-map "p" 'ws-last-cursorp)
  172.   (define-key wordstar-C-q-map "\C-p" 'ws-last-cursorp)
  173.   (define-key wordstar-C-q-map "r" 'beginning-of-buffer)
  174.   (define-key wordstar-C-q-map "\C-r" 'beginning-of-buffer)
  175.   (define-key word